package gob.pgr.ws;

import javax.jws.WebService;

import org.apache.commons.lang.StringUtils;

import gob.pgr.util.PGRUtil;

@WebService(serviceName = "WSValidadorDUI", endpointInterface = "gob.pgr.ws.WSValidadorDUIService")
public class WSValidadorDUI implements WSValidadorDUIService {

	@Override
	public String validarDUI(String dui) {
		SalidaDUI salida = new SalidaDUI();
		String mensaje = "DUI proporcionado cumple algoritmo de validaci\u00f3n";
		boolean valido = true;
		if (StringUtils.isBlank(dui) || StringUtils.length(dui) != 9 || !StringUtils.isNumeric(dui)) {
			mensaje = "DUI proporcionado incorrecto";
			valido = false;
		}
		else {
			int contador = 9;
			int sumatoria = 0;
			for (int i = 0; i < StringUtils.length(dui) - 1; i++) {
				sumatoria += Integer.parseInt(StringUtils.substring(dui, i, i + 1)) * contador;
				contador--;
			}
			int verificador;
			int modulo = sumatoria % 10;
			if (modulo == 0) verificador = 0;
			else verificador = 10 - modulo;
			if (Integer.parseInt(StringUtils.substring(dui, StringUtils.length(dui) - 1)) != verificador) {
				mensaje = "DUI proporcionado no cumple algoritmo de validaci\u00f3n";
				valido = false;
			}
		}
		salida.setMensaje(mensaje);
		salida.setValido(valido);
		String xml = PGRUtil.generarXml(salida);
		return xml;
	}

}
